﻿// -----------------------------------------------------------------------
// <copyright file="ICalendar.cs" company="The Usual Dosage">
// © 2013 by Matthew M. Martin
// </copyright>
// -----------------------------------------------------------------------

namespace Cadence.NET.BaseClasses
{
    using System;

    /// <summary>
    /// Defines the implementation contract for a Calendar
    /// </summary>
    public interface ICalendar
    {
        /// <summary>
        /// When implemented in a derived class, checks the time configured, and indicates whether this instance can run.
        /// </summary>
        /// <returns>
        ///   <c>true</c> if this instance can run; otherwise, <c>false</c>.
        /// </returns>
        bool CanRun();

        /// <summary>
        /// Gets or sets the timezone offset from UTC.
        /// </summary>
        /// <value>
        /// The timezone offset.
        /// </value>
        int? TimezoneUTCOffset { get; set; }

        /// <summary>
        /// Gets the current date time.
        /// </summary>
        DateTime CurrentDateTime { get; }
    }
}
